package cn.com.fig.portal;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * 涉及用户登陆服务
 * 1、验证用户名、密码
 * 2、生成token，加载用户信息到session：用户信息、部门、身份、岗位、菜单
 * 3、验证输入得token是否有效，并返回用户session信息
 * @author eternalfig
 *
 */
public interface ILoginService {
	/**
	 * 验证用户名和密码是否正确
	 * @param userId
	 * @param password
	 * @return
	 */
	public Map loginCheck(String userId, String password);
	/**
	 * 根据userId加载session信息：菜单、岗位、身份等
	 * @param userId
	 * @return 
	 */
	Map loadSession(HttpServletRequest req, HttpServletResponse res, String userId);

	/**
	 * 切换用户身份
	 * @param req
	 * @param res
	 * @param userId
	 * @return
	 */
	Map identityChange(HttpServletRequest req, HttpServletResponse res, String userId,String identityId);
	/**
	 * 检查用户token是否有效，并返回session信息
	 * @param userId
	 * @return
	 */
	Map tokenCheck(HttpServletRequest req, HttpServletResponse res,String userId,String token,String sessionid);

	/**
	 * 用户退出前清理用户session、缓存信息
	 * @param req
	 */
	void clearSession(HttpServletRequest req);

	/**
	 * 获取用户登陆后生成的token
	 * @param req
	 * @return
	 */
	String getToken(HttpServletRequest req);

	/**
	 * 获取用户登陆后sessionid
	 * @param req
	 * @return
	 */
	String getSessionid(HttpServletRequest req);
}
